oracle.pg.text.lucene

## Class LuceneVertexIndex

- java.lang.Object
- - oracle.pg.text.lucene.LuceneIndex<Vertex>
  - - oracle.pg.text.lucene.LuceneVertexIndex

- All Implemented Interfaces:
    Index<Vertex>, OracleIndex<Vertex>

      public class LuceneVertexIndex
      extends LuceneIndex<Vertex>

  This class extends the functions defined in OracleIndex. It manages manual indexes defined on Vertex objects

- - ### Field Summary

    - ### Fields inherited from interface oracle.pg.text.OracleIndex

      `EDGE_ID_PROP, EDGE_LABEL_PROP, END_NODE_ID_PROP, START_NODE_ID_PROP, TYPE_DT_BOOL, TYPE_DT_DATE, TYPE_DT_DOUBLE, TYPE_DT_FLOAT, TYPE_DT_INTEGER, TYPE_DT_SERIALIZABLE, TYPE_DT_STRING, VERTEX_ID_PROP`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LuceneVertexIndex(String indexName, OraclePropertyGraphBase oraclePropertyGraph, Parameter<String,Object>[] indexParameters, boolean erase)` Constructs a new LuceneVertexIndex object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `CloseableIterable<Vertex>` | `get(String key, Object value, Class dtClass, boolean acceptWildcard)` Gets all vertices indexed by the provided key/value.
    `String` | `getDocIdentifier()` Gets the document's identifier associated to this index.
    `CloseableIterable<Vertex>[]` | `getPartitioned(Object[] connections, String key, Object value, Class dtClass, boolean acceptWildcard, int startShardId)` Gets an array of `CloseableIterable` objects that hold all the edges with an attribute matching the given K/V pair.

    - ### Methods inherited from class oracle.pg.text.lucene.LuceneIndex

      `add, addToDeleteCache, buildSearchTerm, buildSearchTerm, clearIndex, close, commit, count, count, count, deleteExistingDirectories, dropIndex, get, get, getDirectory, getDirectoryName, getGraphName, getIndexClass, getIndexName, getIndexParameters, getOracleDirectory, getOracleIndexParameters, getOracleSearcherManager, getParameters, getPartitioned, getSearcherFactory, getTotalShards, isAutoIndex, isDelBatchEmpty, isDelBatchFull, isUpdatesBatchEmpty, isUpdatesBatchFull, put, put, query, query, remove, remove, remove, remove, removeAll, removeAll`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface oracle.pg.text.OracleIndex

      `refreshIndex`

- - ### Constructor Detail

    - #### LuceneVertexIndex

          public LuceneVertexIndex(String indexName,
                           OraclePropertyGraphBase oraclePropertyGraph,
                           Parameter<String,Object>[] indexParameters,
                           boolean erase)

      Constructs a new LuceneVertexIndex object.
      Parameters:
        `indexName` - the name of the index
        `oraclePropertyGraph` - an `OraclePropertyGraphBase` object.
        `indexParameters` - a collection of parameters for the underlying index implementation.
        `erase` - a boolean specifying if the index should be cleared at the beginning.

  - ### Method Detail

    - #### get

          public CloseableIterable<Vertex> get(String key,
                                      Object value,
                                      Class dtClass,
                                      boolean acceptWildcard)

      Gets all vertices indexed by the provided key/value.
      Specified by:
        `get` in interface `OracleIndex<Vertex>`
      Specified by:
        `get` in class `LuceneIndex<Vertex>`
      Parameters:
        `key` - the key of the indexed elements.
        `value` - the value of the indexed elements.
        `acceptWildcard` - specifies if wild cards can be used in the value object.
        `dtClass` - the class representing the datatype of the property value. This can be used to cast the property value to a different datatype. For example, if the value is "3.01" and dtClass is Float.Class, then this value will be treated as a 3.01f.
      Returns:
        an iterable of elements that have a particular key/value in the index.

    - #### getDocIdentifier

          public String getDocIdentifier()

      Gets the document's identifier associated to this index.
      Specified by:
        `getDocIdentifier` in interface `OracleIndex<Vertex>`
      Overrides:
        `getDocIdentifier` in class `LuceneIndex<Vertex>`
      Returns:
        the document's identifier associated to this index.

    - #### getPartitioned

          public CloseableIterable<Vertex>[] getPartitioned(Object[] connections,
                                                   String key,
                                                   Object value,
                                                   Class dtClass,
                                                   boolean acceptWildcard,
                                                   int startShardId)

      Gets an array of `CloseableIterable` objects that hold all the edges with an attribute matching the given K/V pair. Each edge in the `CloseableIterable` array uses a separate connection provided to fetch a subset of the results from a corresponding Lucene sub-directory. Note that we assign an integer ID (in the range of [0, N - 1]) to all the sub-directories in a Lucene index with N shards. The subset of shards (subdirectories) queried will consist of those shards with ID value in the range of [startShardId, startShardId - 1 + size of connections array].
      Specified by:
        `getPartitioned` in interface `OracleIndex<Vertex>`
      Specified by:
        `getPartitioned` in class `LuceneIndex<Vertex>`
      Parameters:
        `connections` - an array of connections to the Lucene index Each edge of this array should be of type SearcherManager. See `LuceneIndex.getOracleSearcherManager(int)`.
        `key` - the key of a property
        `value` - the value object of the property.
        `acceptWildcard` - specifies if wild cards can be used in the value object.
        `startShardId` - the ID of the starting shard.
        `dtClass` - the class representing the datatype of the property value. This can be used to cast the property value to a different datatype. For example, if the value is "3.01" and dtValue is Float.Class, then this value will be treated as a 3.01f.
      Returns:
        a `CloseableIterable` object.

Copyright © 2015 Oracle and/or its afflilates. All Rights Reserved.